package net.cathackers.devel.scmp.interfaces;

import net.cathackers.devel.exceptions.CATException;
import net.cathackers.devel.scmp.exceptions.ServiceManagerNotFound;

public interface CoreSwitch {
    ServiceManager getServiceManagerByGUID(String guid) throws ServiceManagerNotFound;
    ServiceManager getServiceManagerByName(String guid) throws ServiceManagerNotFound; //returns the first one who matches.
    String[] getAllServiceManagersGUIDs();
    String[] getAllServiceManagersNames();
    void registerServiceManager(ServiceManager manager) throws CATException;
    void  unregisterServiceManager(String GUID) throws CATException;
    void requestBlacklistServiceManager(String GUID) throws ServiceManagerNotFound;;
    boolean isBlacklistingRequested(String GUID) throws ServiceManagerNotFound;;
    void routeEnvelope(Envelope message) throws CATException;
}
